package com.ag.oa.util;

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 基础工具类
 */
public class BaseUtils {

    /**
     * 校验昵称是否符合要求
     *
     * 中文，1~5位数
     * @param username
     * @return
     */
    public static boolean checkUsername(String username){
        if(username == null){
            return false;
        }
        String regex = "^[\\u4e00-\\u9fa5]{1,5}$";
        return username.matches(regex);
    }

    /**
     * 校验短信验证码
     *
     * 6位数字
     * @param smsCode
     * @return
     */
    public static boolean checkSmsCode(String smsCode){
        if(smsCode == null){
            return false;
        }
        String regex = "^\\d{6}$";
        return smsCode.matches(regex);
    }

    /**
     * 是否属于中国手机号码 - 2022年适配
     * @param phoneNumber
     * @return
     */
    public static boolean isChinaCellPhoneNumber(String phoneNumber) {
        String regex = "^((13[0-9])|(14(0|[5-7]|9))|(15([0-3]|[5-9]))|(16(2|[5-7]))|(17[0-8])|(18[0-9])|(19([0-3]|[5-9])))\\d{8}$";
        Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(phoneNumber);
        return m.matches();
    }


    /**
     * 获取URL中的参数
     * @param url
     * @return Map集合
     */
    public static Map<String, String> getUrlParamsMap(String url) {
        String regEx = "(\\?|&+)(.+?)=([^&]*)";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(url);
        // LinkedHashMap是有序的Map集合，遍历时会按照加入的顺序遍历输出
        Map<String, String> paramsMap = new LinkedHashMap<String, String>();
        while (m.find()) {
            // 参数名
            String paramName = m.group(2);
            // 参数值
            String paramVal = m.group(3);
            paramsMap.put(paramName, paramVal);
        }
        return paramsMap;
    }

}
